﻿#include <iostream>

#define main testmain_static_main

class test
{
private:	
	int i,j;
public:
	test();
	test(const test & copy);
	test & operator=(const test & assign);

	int geti(void) { return this->i;}
	int getj(void) { return this->j;}
};

using namespace std;

extern float gf_sf_v1;///@alex:注意，这个extern的声明是绝对必不可少的！！
extern float gg_f_v2;

extern test & gg_t(void);

extern int g_fun(void);
extern int f_fun(void);

int main(void)
{
	cout<<gg_f_v2<<endl;

	gg_f_v2=1.0f;
	
	cout<<gg_f_v2<<endl;

	//cout<<gf_sf_v1<<endl;//should be error，在连接时报错

	cout<<gg_t().geti()<<endl;///@alex: 用引用，就可以避开局部静态变量的作用范围仅为函数内的问题了，可以直接访问到具有全局生命周期的变量了
	cout<<gg_t().getj()<<endl;

	cout<<g_fun()<<endl;
	//cout<<f_fun()<<endl;//should be error，在连接时报错

	return 0;
}
